package stackUsage;

import java.util.Stack;

/**
 * @author le
 */
public class DeleteStringNeighborDuplexCharacter {

    /**
     *1047. 删除字符串中的所有相邻重复项
     * 给出由小写字母组成的字符串 S，重复项删除操作会选择两个相邻且相同的字母，并删除它们。
     *
     * 在 S 上反复执行重复项删除操作，直到无法继续删除。
     *
     * 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。
     * @param args
     */



    public static void main(String[] args) {

        String tar = "abbaca";

        Stack<Character> stack = new Stack<>();

        char[] chars = tar.toCharArray();

        for (int i = 0;i < chars.length;i++){
             if (!stack.empty()  && stack.peek() == chars[i]){
                 stack.pop();
             }else{
                 stack.push(chars[i]);
             }
        }
        String res = "";
        while(!stack.empty()){
            res += stack.pop();
        }
        StringBuilder sb = new StringBuilder(res);
        sb.reverse();
        System.out.println(sb.toString());

        stack.forEach(System.out::println);
    }
}
